package models

import (
	"math/rand"
	"time"
)

const LetterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

// UnixToTime
//
//	@Description: 时间戳转换为时间字符串
//	@param timestamp
//	@return string
func UnixToTime(timestamp int64) string {
	return time.Unix(timestamp, 0).Format("2006-01-02 15:04:05")
}

// GetDouble
//
//	@Description: 获得两倍大小的数
//	@param num
//	@return int
func GetDouble(num int) int {
	return num * 2
}

// DateToUnix
//
//	@Description:
//	@param str
//	@return int64
func DateToUnix(str string) int64 {
	template := "2006-01-02 15:04:05"
	location, err := time.ParseInLocation(template, str, time.Local)
	if err != nil {
		return 0
	}
	return location.Unix()
}

// GetUnix
//
//	@Description:
//	@return int64
func GetUnix() int64 {
	return time.Now().Unix() //
}

// GetUnixNano
//
//	@Description:
//	@return int64
func GetUnixNano() int64 {
	return time.Now().UnixNano() //
}

// GetDay 获取年月日
//
//	@Description:
//	@return string
func GetDay() string {
	return time.Now().Format("20060102")
}

// GenerateRandomString 生成指定长度的随机字符串
//
//	@Description:
//	@param n
//	@return string
func GenerateRandomString(n int) string {
	b := make([]byte, n)
	for i := range b {
		b[i] = LetterBytes[rand.Intn(len(LetterBytes))]
	}
	return string(b)
}
